gtkshow: don't call _get_display() on a NULL GdkScreen
authorCosimo Cecchi <cosimoc@gnome.org>
Thu, 13 Jan 2011 15:03:49 +0000 (16:03 +0100)
committerCosimo Cecchi <cosimoc@gnome.org>
Thu, 13 Jan 2011 15:18:59 +0000 (16:18 +0100)
gtk_show_uri() is documented to accept a NULL screen to mean the default
one. Calling gdk_screen_get_display() on a NULL object will cause
segfaults.

gtk/gtkshow.c

index ac3d1ac9742a5b4ce754b8e0b67f494db6ecca55..ad396a27f9f349dd010335956eabed1ba3abb069 100644 (file)
@@ -63,10 +63,16 @@ gtk_show_uri (GdkScreen    *screen,
 {
   GdkAppLaunchContext *context;
   gboolean ret;
+  GdkDisplay *display;
 
   g_return_val_if_fail (uri != NULL, FALSE);
 
-  context = gdk_display_get_app_launch_context (gdk_screen_get_display (screen));
+  if (screen != NULL)
+    display = gdk_screen_get_display (screen);
+  else
+    display = gdk_display_get_default ();
+
+  context = gdk_display_get_app_launch_context (display);
   gdk_app_launch_context_set_screen (context, screen);
   gdk_app_launch_context_set_timestamp (context, timestamp);